package garin.parse.sql.sql2003;

import garin.parse.BlockComment;
import garin.parse.LineComment;
import garin.parse.StringToken;
import garin.parse.Token;
import garin.parse.WhitespaceToken;

public class SqlToken extends Token {
	public SqlToken() {
		super();
	}
	
	protected SqlToken(final Token source) {
		super(source);
	}
	
	public void addStringTokens(final Token token) {
		token.add(new StringToken(token, '\''));
	}
	
	public char identifierQuote() {
		return '"';
	}
	
	public void init() throws Exception {
		add(new WhitespaceToken(this));
		add(new LineComment(this, "--"));
		add(new BlockComment(this, true));
		add(new StatementEndToken(this));
		add(new StringToken(this, identifierQuote()));
		add(new ControlToken(this));
		addStringTokens(this);
	}
}
